Перем инфо;
Перем соединение;
Перем Адрес;
Перем ИТС;
Перем АдресКлюча;
Перем Ключ;

//_____________________________________________________________________________
Процедура ВклВыкл()
	Режим=Форма.Закладки.ТекущаяСтрока();
	Если Режим=1 Тогда
		_тз=тз;
	Иначе
		_тз=тзк;
	КонецЕсли;
	тз.ВыбратьСтроки();
	Пока _тз.ПолучитьСтроку()=1 Цикл
		_тз.Пометка = ?(_тз.Пометка = "+","","+");
	КонецЦикла;
КонецПроцедуры
//_____________________________________________________________________________
Процедура ПриВыбореЗакладки(Номер,Значение)
	Форма.ИСпользоватьСлой("Общий,"+Значение,2);	
КонецПроцедуры

//_____________________________________________________________________________
Функция УстановитьКомпоненту()
	Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"ExtForms\v7plus.dll")=0 Тогда
		Если ЗагрузитьВнешнююКомпоненту("v7plus.dll")=0 Тогда
			Сообщить("Не удалось обнаружить компоненту V7Plus.dll!"); 
			Возврат 0;
		КонецЕсли;
	КонецЕсли;
	Попытка
		Соединение = СоздатьОбъект("Addin.V7HttpReader");
		Инфо = СоздатьОбъект("AddIn.V7SysInfo");
		Соединение.КоличествоПопытокАвторизации = 3;
	Исключение 
		Сообщить("Не удалось создать объекты Addin.V7HttpReader или AddIn.V7SysInfo!"); 
		Возврат 0;
	КонецПопытки; 
	Возврат 1;
КонецФункции  // УстановитьКомпоненту 

//_____________________________________________________________________________
Функция ПолучитьКлюч()
	
	// проверка наличия диска ИТС
	Делт = КодСимв("Z")-КодСимв("A")+1;
	СтрокаИТС = Инфо.ПроверитьИмяФайла("1");
	Если ПустоеЗначение(СтрокаИТС)=1 Тогда
		Сообщить("Вставьте диск ИТС в дисковод и повторите операцию.");
		Возврат 0;
	КонецЕсли;
	
	ИТС = (КодСимв(Сред(СтрокаИТС,2,1)) + Делт-КодСимв(Лев(СтрокаИТС,1))) % Делт;  
	попытка
		Соединение.ПолучитьКакСтроку(Адрес+"auth.asp?"+"its="+ИТС,АдресКлюча);
	исключение   
		Сообщить("Не удалось получить АдресКлюча из интернета!");
		Возврат 0;
	конецпопытки;
	
	Если СокрЛП(АдресКлюча)="" Тогда
		Сообщить("Доступ закрыт!");
		Возврат 0;
	КонецЕсли;

	Ключ = Инфо.ПроверитьИмяФайла(АдресКлюча);
Message("СтрокаИТС="+СтрокаИТС);
Message("ИТС="+ИТС);
Message("АдресКлюча="+АдресКлюча);
Message("Ключ="+Ключ);	
	Возврат 1;

КонецФункции //ПолучитьКлюч   


//_____________________________________________________________________________
Процедура Инфо()
	        
	Если ПустоеЗначение(Ключ)=1 Тогда
	    Если ПолучитьКлюч()=0 Тогда
	        Возврат;
	    КонецЕсли;
	КонецЕсли;
	              
	Коммент = ""; 
	тз.УдалитьСТроки();
	ИДконф = Конфигурация.ПолучитьЗначение(Конфигурация.ТекущаяСтрока());
	
	КаталогКомплекта = "\Reports\"+ИДконф+"\Rp"+Год+"q"+Строка(Кв.ПолучитьЗначение(Кв.ТекущаяСтрока()))+".grp";
	    
	СписокЗагрузки = "";
	    
	Попытка
		Соединение.ПолучитьКакФайл(Адрес+"getfile.asp?"+"its="+ИТС+"&addr="+АдресКлюча+"&d="+Ключ+"&file="+"Ver.id"+"&dir="+КаталогКомплекта, КаталогВременныхФайлов()+"Ver.id");
		Соединение.ПолучитьКакФайл(Адрес+"getfile.asp?"+"its="+ИТС+"&addr="+АдресКлюча+"&d="+Ключ+"&file="+"Loadlst.txt"+"&dir="+КаталогКомплекта, КаталогВременныхФайлов()+"Loadlst.txt");
	Исключение   
		Сообщить("Не удалось получить данные об обновлениях из интернета!");
	КонецПопытки; 
	
	Текст = СоздатьОбъект("Текст");
	
	Текст.Открыть(КаталогВременныхФайлов()+"Ver.id"); 
	Форма.ВерсияОтчетов.Заголовок(Текст.ПолучитьСтроку(1));

	Текст.Открыть(КаталогВременныхФайлов()+"Loadlst.txt");
	
	тз.НоваяСтрока();
	тз.Пометка = "+";
	тз.Описание = "Идентификатор версии отчетности";
	тз.Файл = "Ver.id";
	
	Для Инд = 1 По Текст.КоличествоСтрок() Цикл
		ТекСтрока = Текст.ПолучитьСтроку(Инд);
		Если Лев(ТекСтрока, 2) = "//" Тогда 
			Коммент = Коммент + ТекСтрока+РазделительСтрок;
			Продолжить;
		КонецЕсли;                                      
		                 
		ПР = Найти(ТекСтрока, ";");
		Если ПР > 0 Тогда
			ИмяФайлаАрхива = ВРег(Лев(ТекСтрока, ПР - 1));
			НазвЗагрОтчета = Сред(ТекСтрока, ПР + 1);
		
			тз.НоваяСтрока();
			тз.Пометка = "+";
			тз.Описание = НазвЗагрОтчета;
			тз.Файл = ИмяФайлаАрхива;
		КонецЕсли;
	КонецЦикла;	
	
	Текст="";
	ФС.УдалитьФайл(КаталогВременныхФайлов()+"Ver.id");
	ФС.УдалитьФайл(КаталогВременныхФайлов()+"Loadlst.txt"); 

КонецПроцедуры //Инфо

//_____________________________________________________________________________
Процедура ИнфоКонфигураций()
	
	Если ПустоеЗначение(Ключ)=1 Тогда
	    Если ПолучитьКлюч()=0 Тогда
	        Возврат;
	    КонецЕсли;
	КонецЕсли;	
	
	//Получение информации о конфигурациях
	тзк.ВыбратьСТроки();
	Пока тзк.ПолучитьСТроку()=1 Цикл  
		ж="";		
		попытка
			Соединение.ПолучитьКакСтроку(Адрес+"ITSRepV/"+тзк.ИД+"/Ver.id",ж);
		исключение
			Сообщить("Не удалость получить текущую версию для "+тзк.ИД);
		конецпопытки;
		тзк.Версия = ж;
	КонецЦикла;
	
КонецПроцедуры //ИнфоКонфигураций

//_____________________________________________________________________________
Процедура ТекВерсия()
	          
	Режим=Форма.Закладки.ТекущаяСтрока();
	Если Режим=2 Тогда
		ИнфоКонфигураций();
		Возврат;
	КонецЕсли;
	
	Если ПолучитьКлюч()=0 Тогда
		Возврат;
	КонецЕсли;
	
	ИД = "";
	Лист = "";
	
	ИДконф = Конфигурация.ПолучитьЗначение(Конфигурация.ТекущаяСтрока());
	
	Если ИДконф="Gen" Тогда
		ИДАдрес = Адрес + "ITSRepV/Reports/GeneralN/Ver.id";
	Иначе
	    ИДАдрес = Адрес + "ITSRepV/Reports/" +ИДконф + "/Ver.id";
	КонецЕсли;
	
    попытка
		Соединение.ПолучитьКакСтроку(ИДАдрес,ИД);	
	исключение
		Сообщить("Не удалось получить данные о последней версии из интернета!");
		Возврат;
	конецпопытки;
	
	Год = Лев(ИД,2);
	Кв.ТекущаяСтрока(Число(Сред(ИД,4,1)));
	         
	Инфо();
	
КонецПроцедуры //ТекВерсия

//_____________________________________________________________________________
Процедура УРЛы() 
	Если ПолучитьКлюч()=0 Тогда
		Возврат;
	КонецЕсли;
	
	ИсхКаталог   = Адрес+"getfile.asp?"+"its="+ИТС+"&addr="+АдресКлюча+"&d="+Ключ+"&file=";
	
	тзк.ВыбратьСтроки();
	Пока тзк.ПолучитьСтроку()=1 Цикл        
		Если ПустоеЗначение(тзк.Версия)=1 Тогда
		    Продолжить;
		КонецЕсли;       
		Если тзк.Пометка<>"+" Тогда
		    Продолжить;
		КонецЕсли;

	    Имяфайла = тзк.ИД+"_"+тзк.Версия+"_update.exe";
		
		ТекАдр = ИсхКаталог + "update.exe&dir="+тзк.ИД;
		//Сообщить("Получение конфигурации"+ИмяФайла);       
		
		Сообщить(тзк.Описание+" : "+ТекАдр);
		
	КонецЦикла;	                        
                  
	Сообщить("ВНИМАНИЕ! Эти адреса действительны только в течении некоторго периода времени!","!");
	Сообщить("После закачки файл getfile нужно переименовать в соответствующий .exe","!");
	Сообщить("Если вы не не уверены в том, что написано выше - пользуйтесь кнопкой ""Скачать конфигурации""","!");
КонецПроцедуры //УРЛы()



Процедура Сформировать()

	Режим=Форма.Закладки.ТекущаяСтрока();
	
	Если ПустоеЗначение(Каталог)=1 Тогда
	    Предупреждение("Выберите каталог для загрузки");
		Возврат;
	КонецЕсли;  
	
	Если ПолучитьКлюч()=0 Тогда
		Возврат;
	КонецЕсли;
	
	ИДконф = Конфигурация.ПолучитьЗначение(Конфигурация.ТекущаяСтрока());
	КаталогКомплекта = "\Reports\"+ИДконф+"\Rp"+Год+"q"+Строка(Кв.ПолучитьЗначение(Кв.ТекущаяСтрока()))+".grp";
	ИсхКаталог   = Адрес+"getfile.asp?"+"its="+ИТС+"&addr="+АдресКлюча+"&d="+Ключ+"&file=";
	КаталогСайта = "&dir="+КаталогКомплекта;
	                        
	
	Если Режим = 1 Тогда
		тз.ВыбратьСтроки();
		Пока тз.ПолучитьСтроку()=1 Цикл
		    Если тз.Пометка <> "+" Тогда
		        Продолжить;
		    КонецЕсли;
			
			ФлАдрес = ИсхКаталог+тз.файл+КаталогСайта;
			 
			                           
			Сообщить("Получение файла "+тз.Файл);       
			Попытка
				Соединение.ПолучитьКакФайл(ФлАдрес,Каталог+"\"+тз.Файл);
			исключение
				Сообщить("Не удалось скачать файл");
				Возврат;
			конецпопытки;
			
		КонецЦикла; 
	КонецЕсли;
	
	//закачка конфигураций
	Если Режим = 2 Тогда     
		
		Если Вопрос("Скачать конфигурации, помеченные плюсиком?",4)<>6 Тогда
			Возврат;
		КонецЕсли;
		
		тзк.ВыбратьСтроки();
		Пока тзк.ПолучитьСтроку()=1 Цикл        
			
			Если тзк.Пометка<>"+" Тогда
			    Продолжить;
			КонецЕсли;
			
			Если ПустоеЗначение(тзк.Версия)=1 Тогда
				Сообщить("Сначала необходимо получить текущие версии релизов");
			    Возврат;
			КонецЕсли;       

		    Имяфайла = тзк.Версия+" "+тзк.Описание+" update.exe";
			
			ТекАдр = ИсхКаталог + "update.exe&dir="+тзк.ИД;
			Сообщить("Получение конфигурации"+ИмяФайла);       
			Попытка
				Соединение.ПолучитьКакФайл(ТекАдр,Каталог+"\"+ИмяФайла);
			исключение
				Сообщить("Не удалось скачать файл");
			конецпопытки;
			
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

//_____________________________________________________________________________
Процедура ПриОткрытии()
	Если УстановитьКомпоненту()=0 Тогда
	    Предупреждение("Необходимо наличие компоненты v7plus.dll");
		СтатусВозврата(0);
	КонецЕсли;                           
	
	Адрес = "http://www.1c.ru/buhplace/";  
	
	тз.НоваяКолонка("Пометка",,,,"+/-",2);
	тз.НоваяКолонка("Описание",,,,"Описание",40);	
	тз.НоваяКолонка("Файл",,,,"Файл",7);   
	
	тзк.НоваяКолонка("Пометка",,,,"+/-",2);
	тзк.НоваяКолонка("ИД",,,,"Идентификатор",9);   
	тзк.НоваяКолонка("Описание",,,,"Описание",40);	
	тзк.НоваяКолонка("Версия",,,,"Верися",8);	 

	тзк.НоваяСтрока();тзк.ИД = "BU42TK"; тзк.Описание = "Бухгалтерия";
	
	тзк.НоваяСтрока();тзк.ИД = "OUTK";   тзк.Описание = "Торговля+Склад";
	
	тзк.НоваяСтрока();тзк.ИД = "R2CLKTK";тзк.Описание = "Зарплата+Кадры";
	
	тзк.НоваяСтрока();тзк.ИД = "BUOUSL"; тзк.Описание = "Комплексная";	
	
	тзк.НоваяСтрока();тзк.ИД = "BUPSB25";тзк.Описание = "Производство+Услуги+Бухгалтерия";
	    
	тзк.НоваяСтрока();тзк.ИД = "BASUOR"; тзк.Описание = "Упрощенная система налогообложения";	
	
	тзк.НоваяСтрока();тзк.ИД = "BUBK";   тзк.Описание = "Бухгалтерия для бюджетных организаций";

	тзк.НоваяСтрока();тзк.ИД = "EPSBU";  тзк.Описание = "Бухгалтерия для бюджетных учереждений";
	
	тзк.НоваяСтрока();тзк.ИД = "NLGPL";  тзк.Описание = "Налогоплательщик";	

	тзк.НоваяСтрока();тзк.ИД = "PBOUL";  тзк.Описание = "Предприниматель";
	
	тзк.НоваяСтрока();тзк.ИД = "OUMNPV"; тзк.Описание = "Деньги";     
	
	тзк.НоваяСтрока();тзк.ИД = "OUBV";   тзк.Описание = "Аспект";
	

	//тзк.НоваяСтрока();тзк.ИД = "NCBK";  тзк.Описание = "Свод отчетов";

	//тзк.НоваяСтрока();тзк.ИД = "NCPBK"; тзк.Описание = "Свод отчетов ПРОФ";
	
	//тзк.НоваяСтрока();тзк.ИД = "OUFP";  тзк.Описание = "Финансовое планирование";
	
	тзк.НоваяСтрока();тзк.ИД = "BUTK";    тзк.Описание = "Бухгалтерия, релиз для перехода на 4.2 (старый)";
	
	тзк.НоваяСтрока();тзк.ИД = "BUPSB";   тзк.Описание = "Производство+Услуги+Бухгалтерия, редакция 2.1 (старая)";
	
	тзк.НоваяСтрока();тзк.ИД = "BUOURCLK";тзк.Описание = "Комплексная, редакция 3.0 (старая)"; 
	
	//тзк.ВыбратьСТроки();
	//Пока тзк.ПолучитьСтроку()=1 Цикл
	//    Если (ПустоеЗначение(тзк.Описание)=1) или (Найти(тзк.Описание,"(стар")<>0) Тогда
	//        тзк.Пометка = "";
	//	Иначе
	//		тзк.Пометка = "+";
	//    КонецЕсли;
	//КонецЦикла;
	               
	тзк.ВидимостьКолонки("ИД",0);
	Форма.ИспользоватьЗакладки(1);
	Форма.Закладки.ДобавитьЗначение("Формы","Обновления форм отчетности");
	Форма.Закладки.ДобавитьЗначение("Конфигурации","Обновления конфигураций");
	ПриВыбореЗакладки(1,"Формы");
КонецПроцедуры //ПриОткрытии        

//_____________________________________________________________________________
Процедура ПриНачалеВыбораЗначения(ИД,Флаг)   
	Если ИД="Каталог" Тогда
	    Флаг = 0;
		ФС.ВыбратьКаталог(Каталог,"Выберите каталог для закачки файлов");
	КонецЕсли;
	
КонецПроцедуры //ПриНачалеВыбораЗначения()  

Конфигурация.ДобавитьЗначение("Gen","Общий (Бухгалтерия, Комплексная..)");
Конфигурация.ДобавитьЗначение("BASUOR","УСН");
Конфигурация.ДобавитьЗначение("PBOUL","ПБОЮЛ");
Конфигурация.ДобавитьЗначение("BudgetN","Бюджетная конфигурация");  

Кв.ДобавитьЗначение(1,"I");
Кв.ДобавитьЗначение(2,"II");
Кв.ДобавитьЗначение(3,"III");
Кв.ДобавитьЗначение(4,"IV");

Год=Прав(""+ДатаГод(РабочаяДата()),2);
